.TH TRIPL 1 "26 Dec 21"
.SH NAME
tripl \- the interpreter of the tripl programming language. 
.SH SYNOPSIS
\fBtripl\fP [ FILE ]
.SH DESCRIPTION
\fBtripl\fP is a programming language that uses different 
characters to do different things. You can use tripl to calculate 
the sum of two numbers, print out messages and other things interesting. 

.SH LICENSE
\fBtripl\fP is distrubuted under the GNU General Public License. See the 
\fBLICENSE\fP file in the source directory of tripl. Of course, you need 
to download that from https://gitee.com/pengruiyang-cpu/tripl.git before 
that. 

.SH SYNTAX
\fBvariable define\fP: \fB$\fP uses to push a number into stack. now we also support global variables. 

eg. 	\fB$ name 1048576;\fP

	\fB$ name = +1048576;\fP

	\fB$ name = -1048576;\fP

	# or just leave blank. default value is 0

	\fB$ name;$\fP;

	\fB$ name 1048576 @ rdonly global;\fP

	usable variable attributes: global rdonly ptr


\fB#\fP: line comment

\fBname setting\fP: there are two ways to set names. one is C-style and one is math-style. 

eg. 	\fBa = 0;\fP

	\fB0 -> a;\fP

	\fB-0 -> b;\fP

	\fB-1000 -> c;\fP


\fBname setting with math expressions\fP: you can use math expressions but there are some problems. you cannot 
use things like this \fBa = b = $ 1 + 1;\fP because we the value of a is the returning value of the arch_math_expr. 
on interpreter both a and b are 2 but on machines, a = 0 b = 2. 

eg. 	\fBa = $ 1 + 1;\fP

	\fBa = $ 1 - 1;\fP


\fB!\fP: dump. This dumps things you want, e.g. functions, names, libraries 

	\fBTHIS ONLY WORKS IN INTERPRETER MODE\fP

eg. 	\fB!		@ var;

	usable attributes: var (aka variables) fn (aka functions) names libs (aka libraries) 
	all 

\fB<\fP: import shared library and declares. 

	\fBTHE C-STYLE DECLARES SUPPORT\fP

eg. 	\fB< "foobar.so"\fP
	
	\fB< fn 	@ fn;\fP

	\fB< name 	@ var;\fP

	\fB< fn 2 	@ fn;\fP

	\fB< fn (a, b) 	@ fn;\fP

	\fB< age 	@ var;\fP

	usable attributes: shared (aka dynalib), fn (aka function), var (aka variable)


